package edu.cuit.zhuyimeng.aircraft.service;

import edu.cuit.zhuyimeng.aircraft.controller.dto.CreateAircraftDTO;
import edu.cuit.zhuyimeng.aircraft.controller.vo.AircraftInfoVO;
import edu.cuit.zhuyimeng.aircraft.dal.po.AirlinePO;

import java.util.List;

/**
 * 飞机服务接口
 */
public interface IAircraftService {

    /**
     * 添加飞机
     *
     * @param createAircraftDTO 飞机信息
     */
    void addAircraft(CreateAircraftDTO createAircraftDTO);

    /**
     * 删除飞机
     *
     * @param id 飞机ID
     */
    void deleteAircraft(Long id);

    /**
     * 锁定飞机
     *
     * @param id 飞机ID
     */

    void lockAircraft(Long id);

    /**
     * 解锁飞机
     *
     * @param id 飞机ID
     */
    void unlockAircraft(Long id);

    /**
     * 查询飞机信息
     *
     * @param id 飞机ID
     * @return 飞机信息
     */
    AircraftInfoVO getAircraftInfo(Long id);

    /**
     * 查询飞机列表
     *
     * @param page     页码
     * @return 飞机列表
     */
    List<AircraftInfoVO> getAircraftList(Integer page);

    /**
     * 查询飞机列表
     *
     * @return 飞机列表
     */
    List<AircraftInfoVO> getAircraftList();

    /**
     * 查询所有航空公司
     *
     * @return 航空公司列表
     */
    List<AirlinePO> getAirlineList();

}
